package com.xjl.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.xjl.demo.Admin;
/**
 * 配置拦截器，对未登录访问主页的管理员进行拦截
 * @author JianLin_Xu
 *
 */
public class PcshopFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	
		
	}
	

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// TODO Auto-generated method stub
		 // 获得在下面代码中要用的request,response,session对象
			
		
		  HttpServletRequest servletRequest = (HttpServletRequest) request;
		  HttpServletResponse servletResponse = (HttpServletResponse) response;
		  HttpSession session = servletRequest.getSession();
		  // 获得用户请求的URI
		  String path = servletRequest.getRequestURI();
	//	  System.out.println(path);
		  Object oj = session.getAttribute("admin");
		  /*创建类Constants.java，里面写的是无需过滤的页面
		  for (int i = 0; i < Constants.NoFilter_Pages.length; i++) {
		   if (path.indexOf(Constants.NoFilter_Pages[i]) > -1) {
		    chain.doFilter(servletRequest, servletResponse);
		    return;
		   }
		  }*/
		  // 登陆页面无需过滤LoginServlet
		  if(path.indexOf("/login.jsp") > -1) {
			  chain.doFilter(servletRequest, servletResponse);
			  return;
		  }

		  // 判断如果没有取到员工信息,就跳转到登陆页面
		  if (oj==null) {
		   // 跳转到登陆页面
			  servletResponse.sendRedirect("/pcshop/admin/login.jsp");
		  } else {
		   // 已经登陆,继续此次请求
		   chain.doFilter(request, response);
		  }
		
	}
	
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	

}
